package Study2;

import java.util.*;

/**
 * 集合
 * 集合及其符合的数据结构
 * 在Java当中国，Java把很多的数据结构全部封装起来了
 * 在使用到的时候，需要知道其底层原理
 */
public class Study26 {
    /**
     * Map 的使用
     */
    public static void main(String[] args) {
        Map<String,String> map = new HashMap<>();  // 键值对存储
        map.put("国民女神","高圆圆");
        map.put("国名男神","王思聪");
        map.put("及时雨","宋江");

        System.out.println(map);
        String s = map.get("及时雨");
        System.out.println(s);

        String s1 = map.get("宋江");
        System.out.println(s1);

        String s2 = map.getOrDefault("及时雨","gaobo");
        System.out.println(s2);
        System.out.println(map);
        System.out.println(map.containsKey("及时雨"));
        System.out.println(map.containsValue("宋江"));
        map.put("及时雨","你好");
        System.out.println(map);

        Set<Map.Entry<String,String> > set = map.entrySet();
        for(Map.Entry<String,String> entry :set) {
            System.out.println(entry.getKey()+"=>"+entry.getValue());
        }
    }





    /**
     * Collection 常用方法
     */
    public static void main2(String[] args) {
     //   Collection collection = new LinkedList();   // 单链表
        // 使用泛类型
        Collection<String> collection = new ArrayList<>();
        collection.add("bit");
        collection.add("hello");
        System.out.println(collection);
        collection.clear();
        System.out.println(collection.isEmpty());  // 判断是否为空顺序表
        System.out.println(collection);
        collection.add("hello");
        collection.add("hello");
        collection.add("hello");
        System.out.println(collection.isEmpty());  // 判断是否为空顺序表
        System.out.println(collection);
        collection.remove("hello");   // 删除元素
        System.out.println(collection);
        System.out.println(collection.size());    // 计算顺序表中的有效个数
        Object[] objects = collection.toArray();  // 返回一个装有所有集合中的元素的数组
        System.out.println(Arrays.toString(objects));

        for ( String s:collection) {  // 当前类实现或者继承了 Iterable 接口就可以使用 foreach
            System.out.println(s);
        }



    }

}
